/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.opu.pc.sg;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;

/**
 * http://www.assembla.com/spaces/ap-071/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9
 * @author Yuriy Dunko
 */
public interface StatementGenerationServices {


    /**
     * Generate statement by 1st template.
     *
     * @param begin start date
     * @param end end date
     * @param output where to put result (the stream is closing at the end).
     */
    public void departmentPublicationsStatement(Date begin, Date end,
            OutputStream output) throws IOException;


    /**
     * Generate statement by 2nd template, with student publication
     *
     * @param begin start date
     * @param end end date
     * @param output where to put result (the stream is closing at the end).
     */
    public void studentScienceStatement(Date begin, Date end,
            OutputStream output) throws IOException;


    /**
     * Generate statement by 2nd template, with professor publication (VAK only)
     *
     * @param begin start date
     * @param end end date
     * @param professorId the id of the author
     * @param output where to put result (the stream is closing at the end).
     */
    public void professorScienceStatement(Date begin, Date end,
            Integer professorId, OutputStream output) throws IOException;
}
